Ensuring efficient use of networking resources is an increasingly important design priority for computer networks as the amount of data being transmitted rises. One challenge in network operation is determining when it is appropriate to stop using a network link due to problems with data transmission. Reacting too quickly to a network error by taking down a network link can lead to lost bandwidth in cases where the error may quickly disappear. On the other hand, continuing to attempt data transmissions using a faulty link results in decreased reliability.
A debouncing algorithm can be used to detect when a link is down. For example, a device may receive an indication of an error with a data transmission and then wait for a defined time interval. After the interval, the device checks to see if the fault remains. If the fault does remain, the link will be taken down and not used. If, however, the fault clears, the link can continue to be used for ongoing and future data transmissions.
This approach can be used for determining whether a link should be taken down when the link is inherently stable. An example would be where a network link with a low bit error rate where the cable simply becomes disconnected. In that situation, checking for a persistent fault after a defined interval may appropriately indicate that the link has been broken. However, in the context of a debouncing algorithm, a network link that has a higher bit error rate may be taken down prematurely even though it can still pass some data. For example, checking for a fault indication only once may identify a continued fault and cause the network link to be taken down even though some data can still be transmitted or even though it may only be encountering a temporary issue, such as noise. This can cause a network link to repeatedly switch between an online and an offline state.
Moreover, some data transmissions do not require delivering a complete data set without any errors. Even a faulty link can, in some situations, still be used as a backup or for non-critical data delivery. An approach that simply waits a defined interval and checks for a remaining fault can inappropriately lead to taking down a network link.
Like reference numbers and designations in the various drawings indicate like elements.